#include "searcher.hpp" // 引入自定义的searcher类声明
#include <cstdio>       // 引入C标准输入输出库函数
#include <cstring>      // 引入C字符串处理函数
#include <iostream>     // 引入C++标准输入输出流库
#include <string>       // 引入C++字符串类

// 定义输入文件的路径
const std::string input = "data/raw_html/raw.txt";

// 主函数，程序的入口点
int main() {
    // 创建Searcher类的实例
    ns_searcher::Searcher *search = new ns_searcher::Searcher();
    // 初始化Searcher实例，加载索引数据
    search->InitSearcher(input);

    // 定义用于存储用户查询和搜索结果的字符串变量
    std::string query;
    std::string json_string;
    // 定义字符数组，用于读取用户输入
    char buffer[1024];

    // 无限循环，持续接收用户输入并显示搜索结果
    while(true) {
        // 提示用户输入查询内容
        std::cout << "Please Enter You Search Query# ";
        // 使用fgets函数从标准输入读取一行文本到buffer数组
        fgets(buffer, sizeof(buffer)-1, stdin);
        // 移除读取的行尾的换行符
        buffer[strlen(buffer)-1] = 0;
        // 将读取的查询内容转换为字符串
        query = buffer;
        // 调用Searcher实例的Search方法进行搜索
        search->Search(query, &json_string);
        // 打印搜索结果
        std::cout << json_string << std::endl;
    }

    return 0;
}